import { UserInfo } from '../../common/types/common';
import { UPDATEAVATAR, GETOLDAVATAR, UPDATEUSERNAME, UPDATEPASS, CHECKPASS, GETUSERINFOBYID} from './sql'

import curd from '../../common/services/curd'
class UserService {
    /**
     * 更改头像信息
     * @param url 
     */
    async updateAvatar(url: string, id: string) {
        return await curd.update(UPDATEAVATAR, url, id)
    }

    /**
     * 获取旧的头像信息
     * @param id 
     */
    async getOldUrl(id: string): Promise<{ avatar: string | undefined }> {
        const res = await curd.get(GETOLDAVATAR, id)
        return res[0]
    }

    /**
    * 更改用户名
    */
    async updateUsername(id: string, username: string) {
        return await curd.update(UPDATEUSERNAME, username, id)
    }

    /**
     * 更改密码
     * @param id 
     * @param pass 
     */
    async updatePass(id: string, newPass: string) {
        // 更改用户密码
        return await curd.update(UPDATEPASS, newPass, id)
    }

    /**
     * 根据id获取用户信息
     * @param id 用户id
     */
    async getUserInfoById(id: number): Promise<UserInfo> {
        // 通过用户id获取用户的信息
        const res = await curd.get(GETUSERINFOBYID, id)
        return res[0]
    }

    /**
     * 校验旧密码
     * @param oldPass 
     * @param id 
     */
    async checkOldPass(id: string, oldPass: string) {
        // 查看用户名与密码匹配旧密码是否匹配
        return curd.isExist(CHECKPASS, id, oldPass)
    }


    /**
     * 更改用户名
     * @param sql 
     * @param data 
     */
    async changeUserInfo(sql: string, data: string[]) {
        return await curd.update(sql, ...data)
    }
}

export default new UserService